/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package upeu.cepre.business;

import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import upeu.cepre.model.Alumno;
import upeu.cepre.model.DetallePeriodoSede;
import upeu.cepre.model.DetallePeriodoTrabajador;
import upeu.cepre.model.Sede;
import upeu.cepre.util.DataBaseConexion;

/**
 *
 * @author Elvis Zanguetsu
 */
public class DetallePeriodoSedeManager {

    public Connection connection;

    public DetallePeriodoSede finById(String idDetallePeriodoSede) {
        DetallePeriodoSede detallePeriodoSede = new DetallePeriodoSede();


        try {
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement = connection.prepareStatement("select * from detalleperiodosede where idDetallePeriodoSede=?");
            preparedStatement.setString(1, idDetallePeriodoSede);
            ResultSet rs = preparedStatement.executeQuery();

            if (rs.next()) {

                detallePeriodoSede.setIdDetallePeriodoSede(rs.getString("idDetallePeriodoSede"));
                detallePeriodoSede.setIdPeriodo(rs.getString("idPeriodo"));
                detallePeriodoSede.setIdSede(rs.getString("idSede"));


            }

            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return detallePeriodoSede;
    }

    public DetallePeriodoSede finByIdPeriodoByIdSede(String periodo, String sede) {
        DetallePeriodoSede detallePeriodoSede = new DetallePeriodoSede();
        try {
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM detalleperiodosede WHERE idPeriodo=? AND idSede=?");
            preparedStatement.setString(1, periodo);
            preparedStatement.setString(2, sede);
            ResultSet rs = preparedStatement.executeQuery();
            if (rs.next()) {
                detallePeriodoSede.setIdDetallePeriodoSede(rs.getString("idDetallePeriodoSede"));
                detallePeriodoSede.setIdPeriodo(rs.getString("idPeriodo"));
                detallePeriodoSede.setIdSede(rs.getString("idSede"));
            }
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return detallePeriodoSede;
    }

    public DetallePeriodoSede respaldoSearch(String idperiodo, String idsede) {
        DetallePeriodoSede detallePeriodoSede = new DetallePeriodoSede();
        try {
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM detalleperiodosede WHERE idPeriodo=? AND idSede=?");
            preparedStatement.setString(1, idperiodo);
            preparedStatement.setString(2, idsede);
            ResultSet rs = preparedStatement.executeQuery();
            if (rs.next()) {
                detallePeriodoSede.setIdDetallePeriodoSede(rs.getString("idDetallePeriodoSede"));
                detallePeriodoSede.setIdPeriodo(rs.getString("idPeriodo"));
                detallePeriodoSede.setIdSede(rs.getString("idSede"));
            }
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return detallePeriodoSede;
    }

    public List<DetallePeriodoSede> Report() {
        List<DetallePeriodoSede> priodoSedes = new ArrayList<DetallePeriodoSede>();
       
        try {
            connection = DataBaseConexion.getConexion();
            Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("select * from detalleperiodosede");
            while (rs.next()) {
                 DetallePeriodoSede periodoSede = new DetallePeriodoSede();
                 
                periodoSede.setIdDetallePeriodoSede(rs.getString("idDetallePeriodoSede"));
                periodoSede.setIdPeriodo(rs.getString("idPeriodo"));
                periodoSede.setIdSede(rs.getString("idSede"));
                priodoSedes.add(periodoSede);
            }
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return priodoSedes;
    }

    public List<DetallePeriodoSede> findByIdPeriodoIdSede(String periodo) {
        List<DetallePeriodoSede> detallePeriodoSedes = new ArrayList<DetallePeriodoSede>();
        try {
            connection = DataBaseConexion.getConexion();
            Statement statement = connection.createStatement();
            PreparedStatement prepareestatemente = connection.prepareStatement("select * from detalleperiodosede where idPeriodo=?");
            prepareestatemente.setString(1, periodo);
            ResultSet rs = prepareestatemente.executeQuery();
            while (rs.next()) {
                DetallePeriodoSede periodoSede = new DetallePeriodoSede();

                periodoSede.setIdDetallePeriodoSede(rs.getString("idDetallePeriodoSede"));
                periodoSede.setIdPeriodo(rs.getString("idPeriodo"));
                periodoSede.setIdSede(rs.getString("idSede"));
                detallePeriodoSedes.add(periodoSede);
            }
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return detallePeriodoSedes;
    }

    /*
     * ADD DetallePeridoSede
     */
    public void Add(DetallePeriodoSede detallePeriodoSede) {
        try {
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement =
                    connection.prepareStatement(
                    "INSERT INTO detalleperiodosede ( idDetallePeriodoSede , idPeriodo , idSede ) VALUES (?,?,?);");

            preparedStatement.setString(1, detallePeriodoSede.getIdDetallePeriodoSede());
            preparedStatement.setString(2, detallePeriodoSede.getIdPeriodo());
            preparedStatement.setString(3, detallePeriodoSede.getIdSede());


            preparedStatement.executeUpdate();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }


    }
     public String ObtenerId() {

        java.util.Date ahora = new java.util.Date();
        SimpleDateFormat formateador = new SimpleDateFormat("ddMMyyyy");
        DetallePeriodoSedeManager trabManager = new DetallePeriodoSedeManager();
        int a = trabManager.Report().size();
        return formateador.format(ahora) + "DetallePeriodoSede" + (a + 1);

    }
     
     
}
